package club.service;

import club.pojo.Apply;
import com.github.pagehelper.PageInfo;

public interface ApplyService {

    /**
     * 分页查询所有申请记录
     *
     * @param state    状态，可选，用于筛选特定状态的申请记录
     * @param pageNum  当前页码
     * @param pageSize 每页显示条数
     * @return 分页后的申请记录列表
     */
    PageInfo<Apply> allApply(Integer state, Integer pageNum, Integer pageSize);

    /**
     * 根据申请记录ID查找申请信息
     *
     * @param id 申请记录的ID
     * @return 对应ID的申请信息，若不存在则返回null
     */
    Apply findByid(Integer id);

    /**
     * 更新申请记录的信息
     *
     * @param apply 待更新的申请对象
     * @return 更新操作影响的行数，通常为1
     */
    int updateApply(Apply apply);

    /**
     * 删除指定ID的申请记录
     *
     * @param id 待删除申请记录的ID
     * @return 删除操作影响的行数，通常为1
     */
    int del(Integer id);

    /**
     * 创建新的申请记录
     *
     * @param apply 待创建的申请对象
     * @return 插入操作影响的行数，通常为1
     */
    Integer create(Apply apply);
}
